{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "%matplotlib inline\n",
    "import matplotlib.pyplot as plt\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0,0.5,'num identities')"
      ]
     },
     "execution_count": 76,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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l5kzZwLeh819+/YBsGvXLubMmZM9b/bs2ezatSt7rkguM+NNb3oTZsaHP/xh1q1bN+y/rbH6xCc+wZe//GW6uroA6OzspLGxkVDI+/WW+bc6nlKpFCtXrmTr1q1cc801LFiwIO/XzNi+fTtPPfUU5513Xt7+To9UqOtMVHlaz/brwD/kvM9U4KBzLpNZtAHN/nYzsBPAOZc0s0P++UetK2hm64B1AHPnzh1jiJ6rbtmYee9xeb9SVRcN0aOKn4iUsJEs5/BKIQIppmjYK3wq8Ruec0dXQyv9Q4AMb8OGDcyaNYt9+/axevVqTj/99Lxc55e//CXTp09n5cqVPPTQQ0Bh/q0Gg0E2bdrEwYMHecc73sHzzz9/1Dn5+P+ju7ubd77znXz961+noaFh3N9fhjWu69ma2aXAPufcE2Z2UebwEKe6ETw3+KBztwC3ALS0tIzLMJZJ1WEO9SXojVd20lMX0VBPESltI6n4lb3MEg57D5dl09JRmTFjBnv27GHmzJns2bOH6dOnA14FY+fOndnz2tramDVrVrHClAku829j+vTpvOMd7+DRRx8d9t/WWGzYsIG7776be+65h/7+fg4fPswnPvEJDh48SDKZJBQK5fXfamNjIxdddBEbN27M+zUTiQTvfOc7ee9738tf/uVfAsP//zreCnWdiSoP69leCLzNzN4CRIEGvApgo5mF/KrfbGC3f34bMAdoM7MQMAnYP84xDWtqbRWH+hIVP8yxLhJix/7eYochInLCKnNBniNkEr9KXZ8o19ve9jbWr/emkqxfv57LLrsse/y2227DOcfGjRuZNGmShnnKkHp6erLDLnt6evjtb3/LsmXLhv23NRZf/OIXaWtrY/v27dx+++284Q1v4Ic//CEXX3wxd95557heK6O9vZ2DBw8C0NfXx+9+9zsWL16c12s651i7di2LFy/m2muvzR7Px9/pUAp1nYnK76r5HjO73sz+d+bnRN/POfdp59xs59w84CrgAefce4EHgXf5p63BW04J4G5/H//5B9xQpe08mVxbBWgpAzV3EZFSp4of0BD1/hoqbRjLu9/9bh566CE6OjqYPXs2n/vc57juuuu44ooruPXWW5k7dy533HEHAG95y1u45557WLhwITU1NXzve98rcvQyUe3du5d3vOMdACSTSd7znvfw5je/mXPOOWfIf1v58KUv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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fe6f06ec9b0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# emore\n",
    "fn = '../data/emore/meta.txt'\n",
    "with open(fn, 'r') as f:\n",
    "    lines = f.readlines()\n",
    "labels = np.array([int(l.strip()) for l in lines[1:]])\n",
    "\n",
    "hist = np.bincount(labels)\n",
    "shist = np.sort(hist)[::-1]\n",
    "hhist = np.bincount(hist)\n",
    "plt.figure(figsize=(15,5))\n",
    "plt.subplot(121)\n",
    "plt.plot(np.arange(len(shist)), shist)\n",
    "plt.xlabel('identity')\n",
    "plt.ylabel('num image')\n",
    "for j in [10, 20, 30, 40, 50, 100]:\n",
    "    pos = labels.max() - (hist <= j).sum()\n",
    "    plt.arrow(pos, 200, 0, shist[pos]-160, head_width=1000, head_length=30, fc='k', ec='k')\n",
    "    plt.annotate(str(j), (pos-1800, 220))\n",
    "plt.subplot(122)\n",
    "plt.plot(np.arange(len(hhist)), hhist)\n",
    "plt.xlabel('num image')\n",
    "plt.ylabel('num identities')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0,0.5,'num identities')"
      ]
     },
     "execution_count": 77,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA4UAAAFACAYAAAALatmOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzt3Xu8XHV56P/Ps/fOBUIwCSQYCBrQtHIPkHARigEMhPtNWzi2RMXSC/6qP3t6GtvfKVQPR9RjvZxSLApHtK1Ii0pqoxAB5XVQhAABAogJFyWQknC/57af3x+zNkySmZ3Z2TN79l7zeb9Yr1nzzFrf9axhJms/s77ruyIzkSRJkiR1pq52JyBJkiRJah+LQkmSJEnqYBaFkiRJktTBLAolSZIkqYNZFEqSJElSB7MolCRJkqQOZlEoSZIkSR3MolCSJEmSOphFoSRJkiR1sJ52J9AKO++8c06fPr3daUiShsCdd975dGZObnceI4XHSEnqDAM5PpayKJw+fTpLlixpdxqSpCEQEb9udw4jicdISeoMAzk+2n1UkiRJkjqYRaEkSZIkdTCLQkmSJEnqYBaFkiRJktTBLAolSZIkqYNZFEqSJElSB7MolCRJkqQOZlEoSZIkSR3MolCSJEmSOphFYQ2Zybdv/w3Lnnih3alIkjTs3PWb53jx9fXtTkOS1CQWhTVkwie/ex83Pri63alIkjSsrNvQy5n/8DPO+8Yd7U5FktQkFoWSJKlhvZkA3LvS3jSSVBYWhZIkSZLUwSwKJUmSJKmDWRRKkiRJUgezKJQkSZKkDmZRKEmSJEkdzKKwH0m2OwVJkiRJaimLwhoi2p2BJEmSJA0Ni0JJkiRJ6mAWhZIkSZLUwSwKJUmSJKmDWRRKkqSGpWOwSVLpWBRKkiRJUgezKOyHv4ZKkrQpb9ckSeVjUVhDeE8KSZIkSR3ColCSJEmSOphFoSRJapiXVkhS+VgUSpI0CBFxZUSsjohlVbGLIuKJiFhaTCdWvfbJiFgREQ9FxPFV8XlFbEVELKiK7xERv4iI5RHxnYgYXcTHFM9XFK9PH5o9liSVjUWhJEmD8w1gXo34FzNzZjEtAoiIvYGzgX2Kdf4hIrojohu4FDgB2Bs4p1gW4LNFWzOA54Dzivh5wHOZ+U7gi8VyLeeJQkkqH4tCSZIGITNvAZ5tcPHTgKszc21mPgqsAA4pphWZ+UhmrgOuBk6LyshnxwD/Vqx/FXB6VVtXFfP/BhwbjpQmSdoGFoWSJLXGRyPi3qJ76cQithvweNUyK4tYvfhOwPOZuWGz+CZtFa+/UCy/hYg4PyKWRMSSNWvWDH7PJEmlYlHYD7vISJK20WXAO4CZwCrgC0W81pm83IZ4f21tGcy8PDNnZeasyZMn95f3VqUjzUhS6VgUSpLUZJn5VGZuzMxe4GtUuodC5Uzf7lWLTgOe7Cf+NDAhIno2i2/SVvH6W2i8G6skSW+wKJQkqckiYmrV0zOAvpFJFwJnFyOH7gHMAG4H7gBmFCONjqYyGM3CrJyWuxl4X7H+fOC6qrbmF/PvA27KITiN53lCSSqfnq0vIkmS6omIbwNzgJ0jYiVwITAnImZSqaEeA/4IIDPvj4hrgAeADcAFmbmxaOejwPVAN3BlZt5fbOIvgasj4n8AdwNXFPErgG9FxAoqZwjPbvGuSpJKyqJQkqRByMxzaoSvqBHrW/5i4OIa8UXAohrxR3iz+2l1/HXg/QNKtok8YyhJ5WH3UUmS1DDHmZGk8rEolCRJA+YNESWpPCwK++PPoZIkbcpDoySVjkVhHeFPoJIkSZI6QMuKwojYPSJujogHI+L+iPhYEZ8UEYsjYnnxOLGIR0R8JSJWRMS9EXFQVVvzi+WXR8T8etuUJEmtlZ4qlKTSaeWZwg3An2fmXsBhwAURsTewALgxM2cANxbPAU6gcr+mGcD5wGVQKSKpDO99KJXR1y7sKyQlSZIkSYPTsqIwM1dl5l3F/EvAg8BuwGnAVcViVwGnF/OnAd/MituACcXNf48HFmfms5n5HLAYmNeqvCVJkiSpkwzJNYURMR04EPgFsEtmroJK4QhMKRbbDXi8arWVRaxeXJIkDTHHYJOk8ml5URgROwDXAh/PzBf7W7RGLPuJb76d8yNiSUQsWbNmzbYlK0mSJEkdpqVFYUSMolIQ/nNmfrcIP1V0C6V4XF3EVwK7V60+DXiyn/gmMvPyzJyVmbMmT57c3B2RJEmAd6SQpDJq5eijAVwBPJiZf1f10kKgbwTR+cB1VfFzi1FIDwNeKLqXXg8cFxETiwFmjitiLeeBT5IkSVLZ9bSw7SOAPwDui4ilReyvgEuAayLiPOA3wPuL1xYBJwIrgFeBDwFk5rMR8WngjmK5T2Xmsy3MG6jdZ1WSJEmSyqZlRWFm/l/q11bH1lg+gQvqtHUlcGXzspMkSdsiHWlGkkpnSEYflSRJkiQNTxaFkiSpYZ4nlKTysSiUJEmSpA5mUShJkhrmJYWSVD4Whf3wwCdJkiSp7CwK66jcZlGSJEmSys2iUJIkNSwdakaSSseiUJIkSZI6mEWhJElqnCcKJal0LAolSZIkqYNZFEqSJElSB7MolCRJDbP3qCSVj0VhPxxhTZIkSVLZWRTW4V0KJUnaUvp7qSSVjkWhJEmSJHUwi0JJkgYhIq6MiNURsawq9vmI+GVE3BsR34uICUV8ekS8FhFLi+mrVescHBH3RcSKiPhKREQRnxQRiyNiefE4sYhHsdyKYjsHDeV+e8JQksrDolCSpMH5BjBvs9hiYN/M3B/4FfDJqtcezsyZxfTHVfHLgPOBGcXU1+YC4MbMnAHcWDwHOKFq2fOL9VvO6+0lqXwsCiVJGoTMvAV4drPYDZm5oXh6GzCtvzYiYiqwY2b+PDMT+CZwevHyacBVxfxVm8W/mRW3AROKdoaE195LUnlYFEqS1FofBn5Y9XyPiLg7In4aEb9TxHYDVlYts7KIAeySmasAiscpVes8XmedlnGgGUkqn552JzCceeCTJA1GRPw1sAH45yK0CnhbZj4TEQcD34+Ifah94m1rR6GG14mI86l0MeVtb3tbI6lLkjqIZwrrCPvFSJIGISLmAycDHyi6hJKZazPzmWL+TuBh4LeonOWr7mI6DXiymH+qr1to8bi6iK8Edq+zziYy8/LMnJWZsyZPnjyo/fL3UkkqH4tCSZKaLCLmAX8JnJqZr1bFJ0dEdzG/J5VBYh4puoW+FBGHFaOOngtcV6y2EJhfzM/fLH5uMQrpYcALfd1MJUkaCLuPSpI0CBHxbWAOsHNErAQupDLa6BhgcXFniduKkUaPAj4VERuAjcAfZ2bfIDV/QmUk0+2oXIPYdx3iJcA1EXEe8Bvg/UV8EXAisAJ4FfhQ6/ZSklRmFoWSJA1CZp5TI3xFnWWvBa6t89oSYN8a8WeAY2vEE7hgQMk2QXrBvSSVjt1HJUmSJKmDWRRKkqSGeaJQksrHolCSJEmSOphFYT/8MVSSJElS2VkU1hE17wksSZIkSeViUShJkiRJHcyiUJIkNcyBZiSpfCwKJUmSJKmDWRRKkqQB84ShJJWHRaEkSWpYWg5KUulYFPbD6yYkSarNMbolqTwsCuvxaCdJ0hb8wVSSyseiUJIkSZI6mEWhJElqmCcKJal8LAolSZIkqYNZFEqSJElSB7MolCRJDUtHmpGk0rEolCRJkqQOZlHYD2/QK0nSpjwySlL5WBTW4W0KJUmSJHWClhWFEXFlRKyOiGVVsYsi4omIWFpMJ1a99smIWBERD0XE8VXxeUVsRUQsaFW+kiSpcZ4xlKTyaOWZwm8A82rEv5iZM4tpEUBE7A2cDexTrPMPEdEdEd3ApcAJwN7AOcWykiSpDRxnRpLKp6dVDWfmLRExvcHFTwOuzsy1wKMRsQI4pHhtRWY+AhARVxfLPtDkdCVJ0gB4mYUklUc7rin8aETcW3QvnVjEdgMer1pmZRGrF5ckSW3hqUJJKpuhLgovA94BzARWAV8o4rV+cMx+4luIiPMjYklELFmzZk0zcpUkSZKk0hvSojAzn8rMjZnZC3yNN7uIrgR2r1p0GvBkP/FabV+embMyc9bkyZOblHBzmpEkqWw8REpSeQxpURgRU6uengH0jUy6EDg7IsZExB7ADOB24A5gRkTsERGjqQxGs3Boch2KrUiShouIOCIixhXzvx8RfxcRb293XsONA81IUvm0bKCZiPg2MAfYOSJWAhcCcyJiJpUfGB8D/gggM++PiGuoDCCzAbggMzcW7XwUuB7oBq7MzPtblbMkqaNdBhwQEQcA/w24Avgm8J62ZjVM+dupJJVHK0cfPadG+Ip+lr8YuLhGfBGwqImpSZJUy4bMzIg4DfhyZl4REfPbndRw44lCSSqfdow+KknScPRSRHwS+APgP4p75Y7a2krFaNqrI2JZVWxSRCyOiOXF48QiHhHxlYhYUYzEfVDVOvOL5ZdXF6MRcXBE3Fes85WIygUO9bbRar1F/9Eur7OQpNKwKJQkqeL3gLXAhzPzP6ncAunzDaz3DWDeZrEFwI2ZOQO4sXgOcAKV6+ZnAOdT6bJKREyicpnFoVQGYbuwqsi7rFi2b715W9lGS/X2Vh6tCSWpPCwKJUkCikLwWmBMEXoa+F4D690CPLtZ+DTgqmL+KuD0qvg3s+I2YEIxCNvxwOLMfDYznwMWA/OK13bMzJ9nZlK5xvH0rWyjpTxTKEnlY1EoSRIQEX8I/Bvwj0VoN+D729jcLpm5CqB4nFLV5uNVy60sYv3FV9aI97eNluobfdSaUJLKo+GisG+Y7k7ixfSS1FEuAI4AXgTIzOU0v9CqVUrlNsQHttGI8yNiSUQsWbNmzUBX30TfmUJrQkkqj60WhRHx7oh4AHiweH5ARPxDyzNrs/BwJ0mdZm1mrut7EhE9bPvvg0/13Zu3eFxdxFcCu1ctNw14civxaTXi/W1jC5l5eWbOysxZkydP3sZdqnij+2iXx0lJKotGzhR+kcq1Ds8AZOY9wFGtTEqSpDb4aUT8FbBdRMwF/hX4921sayHQN4LofOC6qvi5xSikhwEvFF0/rweOi4iJxQAzxwHXF6+9FBGHFaOOnrtZW7W20VK9fd1Hh2JjkqQh0dB9CjPz8dj04oGNrUlHkqS2WQCcB9wH/BGVe+R+fWsrRcS3gTnAzhGxksooopcA10TEecBvgPcXiy8CTgRWAK8CHwLIzGcj4tPAHcVyn8rMvsFr/oTKCKfbAT8sJvrZRkulA81IUuk0UhQ+HhHvBjIiRgN/RtGVVJKkssjMXuBrxTSQ9c6p89KxNZZNKtcu1mrnSuDKGvElwL414s/U2kar9TrQjCSVTiNF4R8DX+bNEdBuoM4BTZKkkSYirsnM342I+6hxDWFm7t+GtIatjUVVGFaFklQaWy0KM/Np4ANDkIskSe3wseLx5LZmMUK82X20zYlIkppmq0VhRHylRvgFYElmDslF7e3Sd+CTJJVX373+gD/NzL+sfi0iPgv85ZZrda6+7qNeUyhJ5dHI6KNjgZnA8mLaH5gEnBcRX2phbm3lsU6SOs7cGrEThjyLYa7XgWYkqXQauabwncAxmbkBICIuo3Jd4VwqI7RJkjRiRcSfAH8K7BkR91a9NB64tT1ZDV+99qKRpNJppCjcDRhHpcsoxfyumbkxIta2LDNJkobGv1C5zcNnqNyWos9LVbeFUKGvJuxqpK+RJGlEaKQo/BywNCJ+QuVetUcB/zMixgE/bmFukiQNhczMxyJii5G1I2KSheGm7D4qSeXTyOijV0TEIuAQKkXhX2Xmk8XLf9HK5CRJGgL/QmXk0Tup3JKiutpJYM92JDVcvXGfwvamIUlqokbOFAK8DqyiMujMOyPinZl5S+vSkiRpaGTmycXjHu3OZSToO1PofQolqTy2ekVARHwEuAW4Hvjb4vGi1qYlSdLQiogbG4l1uvRMoSSVTiOXiX8MmA38OjOPBg4E1rQ0q2HCAdYkqfwiYmxETAJ2joiJETGpmKYDu7Y3O0mSWq+R7qOvZ+brEUFEjMnMX0bEb7c8szbzF1BJ6hh/BHycSgF4J28eAl4ELm1XUsOdv5tKUnk0UhSujIgJwPeBxRHxHPDkVtaRJGlEyMwvA1+OiP8nM/93u/MZ/iwHJalsGhl99Ixi9qKIuBl4C/CjlmYlSdIQy8z/HRHvBqZTdXzMzG+2LalhzB41klQeDY0+GhETgd2Bl4ppX+CuFuYlSdKQiohvAe8AlgIbi3ACFoU1eL5Qkspjq0VhRHwa+CDwCNBbhBM4pnVpSZI05GYBe2c6zFh/fHckqXwaOVP4u8A7MnNdq5ORJKmNlgFvpXJfXkmSOkYjReEyYAKwusW5DDv+GCpJHWVn4IGIuB1Y2xfMzFPbl5IkSa3XSFH4GeDuiFhGBx0kI7yEXpI6zEXtTkCSpHZopCi8CvgscB9vXlMoSVKpZOZPI+LtwIzM/HFEbA90tzuv4cZeNJJUPo0UhU9n5ldanokkSW0UEX8InA9MojIK6W7AV4Fj25mXJEmt1khReGdEfAZYyKbdR70lhSSpTC4ADgF+AZCZyyNiSntTGr4cpFWSyqORovDA4vGwqpi3pJAklc3azFzXd015RPRgb0lJUgfYalGYmUcPRSKSJLXZTyPir4DtImIu8KfAv7c5p2HHE4SSVD51i8KI+P3M/KeI+ESt1zPz71qXliRJQ24BcB6VgdX+CFgEfL2tGUmSNAT6O1M4rngcPxSJDEf+GipJnSMze4GvFZMkSR2jblGYmf9YPP7t0KUzfHiXQknqDBFxH/1cO5iZ+w9hOsNeepmlJJVOIwPNSJJUZicXjxcUj98qHj8AvDr06UiSNLQsCiVJHS0zfw0QEUdk5hFVLy2IiFuBT7Uns+HN84WSVB5d7U5AkqRhYlxEHNn3JCLezZvX1w9YRPx2RCytml6MiI9HxEUR8URV/MSqdT4ZESsi4qGIOL4qPq+IrYiIBVXxPSLiFxGxPCK+ExGjtzVfSVLn2uqZwoiYAJwLTK9ePjP/rHVpSZI05M4DroyItxTPnwc+vK2NZeZDwEyAiOgGngC+B3wI+GJm/q/q5SNib+BsYB9gV+DHEfFbxcuXAnOBlcAdEbEwMx8APlu0dXVEfLXYh8u2NefG9quVrUuS2qGR7qOLgNuoDNHd29p0JElqj8y8EzggInYEIjNfaGLzxwIPZ+avI+oOZXYacHVmrgUejYgVwCHFaysy8xGAiLgaOC0iHgSOAf5LscxVwEW0uCiUJJVPI0Xh2Mysea/CsnOENUkqv3r35e0r3pp0X96zgW9XPf9oRJwLLAH+PDOfA3aj8iNsn5VFDODxzeKHAjsBz2fmhhrLbyIizgfOB3jb2942uD2RJJVOI9cUfisi/jAipkbEpL6p5Zm1m/ekkKROUX1f3lrToBTX+Z0K/GsRugx4B5WupauAL/QtWmP13Ib4lsHMyzNzVmbOmjx58gCyr89upJJUHo2cKVwHfB74a9482CSwZ6uSkiRpqAzBfXlPAO7KzKeK7TzV90JEfA34QfF0JbB71XrTgCeL+Vrxp4EJEdFTnC2sXr5lrAUlqXwaOVP4CeCdmTk9M/coJgtCSZIacw5VXUcjYmrVa2cAy4r5hcDZETEmIvYAZgC3A3cAM4qRRkdT6Yq6MDMTuBl4X7H+fOC6lu5JlfqXRkqSRppGisL72Yab90bElRGxOiKWVcUmRcTiYujsxRExsYhHRHylGGr73og4qGqd+cXyyyNi/kDzkCSpXSJieyqjhn63Kvy5iLgvIu4Fjgb+X4DMvB+4BngA+BFwQWZuLM4CfhS4HngQuKZYFuAvgU8Ug9LsBFwxBLtFJd+h2pIkqdUa6T66EVgaETcDa/uCDdyS4hvA3wPfrIotAG7MzEuK+ywtoHJAO4HKL6IzqFw8fxlwaHHt4oXALCo9Vu4shuF+roG8JUlqq8x8lUqxVh37g36Wvxi4uEZ8EZXRwDePP8KbI5QOibQalKTSaaQo/H4xDUhm3hIR0zcLnwbMKeavAn5CpSg8Dfhm0RXmtoiYUHSvmQMszsxnASJiMTCPTUdwkyRp0LwvrySpU221KMzMq5q4vV0yc1XR7qqImFLEd2PL4bZ36ye+BYfbliQNkvfllSR1pK0WhRHxKDUGG2vyYDNNGW4buBxg1qxZTenbYg8ZSeooHXtf3m3hvXwlqTwa6T46q2p+LPB+YFvvU/hUREwtzhJOBVYX8XrDcK/kze6mffGfbOO2B8RB1SSp43wrIv6Qyi0iqq+hf7Z9KUmS1HpbHX00M5+pmp7IzC8Bx2zj9hZSGTIbNh06eyFwbjEK6WHAC0U30+uB4yJiYjFS6XFFTJKkZuu7L+/PgTuLaUlbMxrGwp9PJak0Guk+elDV0y4qZw7HN7Det6mc5ds5IlZSGUX0EuCaiDgP+A2Vs45QuY7jRGAFldtffAgqv85GxKep3KMJ4FP+YitJapG++/I+3e5ERgK7j0pSeTTSffQLVfMbgMeA393aSpl5Tp2Xjq2xbAIX1GnnSuDKrWYpSdLgbNN9eTuN19tLUvk0Mvro0UORiCRJbbat9+WVJGlEa6T76BjgLLa8b9OnWpeWJElDbpvuyytJ0kjXSPfR64AXqFxwv3Yry0qSNCI1+b68kiSNGI0UhdMyc17LMxlmIhxVTZI6yRDdl3fEc4AZSSqfRorCn0XEfpl5X8uzkSSpfZp5X15JkkaMRorCI4EPFr+grqVyX/fMzP1bmpkkSUMoM5/ZLPSliPi/wN+0I5/hzlFIJak8GikKT2h5FpIktdm23pdXkqSRrpFbUvx6KBKRJKnNtum+vJ3GM4SSVD6NnCmUJKn0vC+vJKlTWRRKkoT35ZUkdS6Lwn6kfWQkqZN4X94GeGiUpPKxKKzD2xRKUsfpyPvySpLU1e4EJEkaJn4WEfu1O4mRwjOGklQenimUJKnC+/JKkjqSRaEkSRXel7cBniCUpPKxKJQkCe/LK0nqXF5TKEmSJEkdzKJQkiQ1zNs1SVL5WBT2w8OeJEmSpLKzKKzD2xRKkiRJ6gQWhZIkSZLUwSwKJUlSw7y0QpLKx6JQkqQWiYjHIuK+iFgaEUuK2KSIWBwRy4vHiUU8IuIrEbEiIu6NiIOq2plfLL88IuZXxQ8u2l9RrOvVD5KkAbMolCSptY7OzJmZOat4vgC4MTNnADcWzwFOAGYU0/nAZVApIoELgUOBQ4AL+wrJYpnzq9ab1/rdkSSVjUWhJElD6zTgqmL+KuD0qvg3s+I2YEJETAWOBxZn5rOZ+RywGJhXvLZjZv48K/eJ+GZVWy3nrSkkqTwsCvvh8U6SNEgJ3BARd0bE+UVsl8xcBVA8TiniuwGPV627soj1F19ZI76FiDg/IpZExJI1a9YMfo8kSaXS0+4Ehisvy5AkNcERmflkREwBFkfEL/tZttaBJ7chvmUw83LgcoBZs2Y1pazzOClJ5eGZQkmSWiQznyweVwPfo3JN4FNF10+Kx9XF4iuB3atWnwY8uZX4tBrxIWH3UUkqD4tCSZJaICLGRcT4vnngOGAZsBDoG0F0PnBdMb8QOLcYhfQw4IWie+n1wHERMbEYYOY44PritZci4rBi1NFzq9pqmbT/qCSVjt1HJUlqjV2A7xXdLHuAf8nMH0XEHcA1EXEe8Bvg/cXyi4ATgRXAq8CHADLz2Yj4NHBHsdynMvPZYv5PgG8A2wE/LCZJkgbEolCSpBbIzEeAA2rEnwGOrRFP4II6bV0JXFkjvgTYd9DJSpI6mt1HJUmSJKmDWRRKkqSGOb6MJJWPRWE/vJhekiRJUtlZFNbh3ZckSarPn00lqTwsCiVJkiSpg1kUSpKkhnmGUJLKx6JQkiRJkjqYRaEkSZIkdTCLQkmS1LC+W1J4awpJKg+Lwn608oD34Q9/mClTprDvvvu+EXv22WeZO3cuM2bMYO7cuTz33HOtS2AApk+fzn777cfMmTOZNWtW09vfuHEjBx54ICeffHLT226V119/nUMOOYQDDjiAffbZhwsvvLDdKXWMxx9/nKOPPpq99tqLffbZhy9/+cvtTqmlav1bIQ0H3rZJksrDorCOaPE9KT74wQ/yox/9aJPYJZdcwrHHHsvy5cs59thjueSSS1qbxADcfPPNLF26lCVLljS97S9/+cvstddeTW+3lcaMGcNNN93EPffcw9KlS/nRj37Ebbfd1u60OkJPTw9f+MIXePDBB7ntttu49NJLeeCBB9qdVsvU+rdCGg56rQklqTQsCtvkqKOOYtKkSZvErrvuOubPnw/A/Pnz+f73v9+O1IbUypUr+Y//+A8+8pGPtDuVAYkIdthhBwDWr1/P+vXriVb/kiAApk6dykEHHQTA+PHj2WuvvXjiiSfanFXr1Pq3QhoO0v6jklQaFoXDyFNPPcXUqVOByh++q1evbnNGFRHBcccdx8EHH8zll1/e1LY//vGP87nPfY6urpH3Udy4cSMzZ85kypQpzJ07l0MPPbTdKXWcxx57jLvvvtv3XhpCfd1GPVMoSeXRlr/EI+KxiLgvIpZGxJIiNikiFkfE8uJxYhGPiPhKRKyIiHsj4qB25NzJbr31Vu666y5++MMfcumll3LLLbc0pd0f/OAHTJkyhYMPPrgp7Q217u5uli5dysqVK7n99ttZtmxZu1PqKC+//DJnnXUWX/rSl9hxxx3bnY7UcXo9UyhJpdHO0zNHZ+bMzOwbuWQBcGNmzgBuLJ4DnADMKKbzgcuGPNMhsssuu7Bq1SoAVq1axZQpU9qcUcWuu+4KwJQpUzjjjDO4/fbbm9LurbfeysKFC5k+fTpnn302N910E7//+7/flLaH0oQJE5gzZ47XfQ2h9evXc9ZZZ/GBD3yAM888s93pSB2p11OFklQaw6nP3mnAVcX8VcDpVfFvZsVtwISImNqOBFvt1FNP5aqrKm/BVVddxWmnndbmjOCVV17hpZdeemP+hhtuaNooiJ/5zGdYuXIljz32GFdffTXHHHMM//RP/9SUtlttzZo1PP/88wC89tpr/PjHP+Zd73pXm7PqDJnJeeedx1577cUnPvGJdqcjdRxvSSFJ5dOuojCBGyLizog4v4huqYS8AAAcVElEQVTtkpmrAIrHvtNkuwGPV627sohtIiLOj4glEbFkzZo1LUy9Oc455xwOP/xwHnroIaZNm8YVV1zBggULWLx4MTNmzGDx4sUsWLBg6w212FNPPcWRRx7JAQccwCGHHMJJJ53EvHnz2p1W261atYqjjz6a/fffn9mzZzN37twRdUuNkezWW2/lW9/6FjfddBMzZ85k5syZLFq0qN1ptUytfyuk4cCaUJLKo6dN2z0iM5+MiCnA4oj4ZT/L1hrScYtjUWZeDlwOMGvWrKYcq1p5wPv2t79dM37jjTe2cKsDt+eee3LPPfe0fDtz5sxhzpw5Ld9Os+y///7cfffd7U6jIx155JEdNephvX8rpHbzmkJJKo+2nCnMzCeLx9XA94BDgKf6uoUWj31Db64Edq9afRrwZOuz9PYCkiTVY1EoSeUx5EVhRIyLiPF988BxwDJgITC/WGw+cF0xvxA4txiF9DDghb5uppIkaWj1lYKOMyNJ5dGO7qO7AN8rbvTdA/xLZv4oIu4AromI84DfAO8vll8EnAisAF4FPjT0KUuSpGqd1I1bkspuyIvCzHwEOKBG/Bng2BrxBC4YgtQkSVKDPFMoSeUxnG5JIUmSRgivKZSk8rAolCRJjSuKQWtCSSoPi8J+eMCTJEmSVHYWhXWEd6SQJEmS1AEsCtvorrvu4vHHH293Glv14osvcvPNN7es/VtuuYXnn3++Ze23Sm9vLz/4wQ/anUbHuv3221m1qnPuTnPzzTfz4osvtjsNCTvRSFL5WBS20cEHH8zv/u7vtjuNrbrkkks45phjWtb+e97zHv7mb/6mZe23yooVKzjllFPanUbHOvTQQ/nQhzrnDjXHHHMMn/vc59qdhiRJKiGLwjZ77rnn2p3CVq1bt67l23j99ddbvg2VT6edORuK76KaJyJ2j4ibI+LBiLg/Ij5WxC+KiCciYmkxnVi1zicjYkVEPBQRx1fF5xWxFRGxoCq+R0T8IiKWR8R3ImL00O6lJKkMLAolSWqNDcCfZ+ZewGHABRGxd/HaFzNzZjEtAiheOxvYB5gH/ENEdEdEN3ApcAKwN3BOVTufLdqaATwHnDdUOydJKg+LQkmSWiAzV2XmXcX8S8CDwG79rHIacHVmrs3MR4EVwCHFtCIzH8nMdcDVwGkREcAxwL8V618FnN6avXmTI3NLUvlYFEqS1GIRMR04EPhFEfpoRNwbEVdGxMQithtQPfrYyiJWL74T8HxmbtgsLknSgFgU9sufQyVJgxMROwDXAh/PzBeBy4B3ADOBVcAX+hatsXpuQ7xWDudHxJKIWLJmzZoB7oEkqewsCuvwNoWSpMGKiFFUCsJ/zszvAmTmU5m5MTN7ga9R6R4KlTN9u1etPg14sp/408CEiOjZLL6FzLw8M2dl5qzJkyc3Z+ckSaVhUShJUgsU1/xdATyYmX9XFZ9atdgZwLJifiFwdkSMiYg9gBnA7cAdwIxipNHRVAajWZiZCdwMvK9Yfz5wXSv3CSCrLipMLzCUpFLo2foikiRpGxwB/AFwX0QsLWJ/RWX00JlUuno+BvwRQGbeHxHXAA9QGbn0gszcCBARHwWuB7qBKzPz/qK9vwSujoj/AdxNpQgdMr0J3XatkaQRz6JQkqQWyMz/S+2rERb1s87FwMU14otqrZeZj/Bm99Mh15tJtxdcSNKIZ/dRSZLUsOoOo712H5WkUrAolCRJ26S3t90ZSJKawaKwH/4AKklSfZ4plKRysCisI7xEQpKkflkUSlI5WBRKkqSGVdeBvdaEklQKFoWSJGmbeJ9CSSoHi0JJkrRNNnqqUJJKwaJQkiQ1rLoMXL/RolCSysCiUJIkbZP1G70nhSSVgUWhJEnaJussCiWpFCwK6+iKYIPXSkiSVJdnCiWpHCwK6xjV3cUGD3aSJG2iesTR9Rv88VSSysCisI5R3cF6zxRKklTXuo0b252CJKkJLArrGNXdxfoNnimUJKmedZ4plKRSsCisY1R3l9dKSJLUD4+TklQOFoV1jOp2oBlJkvpjUShJ5WBRWEdPdxdr7T4qSVJd6zxOSlIpWBTWMabHolCSpP54n0JJKgeLwjrGje7htXUb2p2GJEnDStUdKTxTKEklYVFYx/aju3l1XfOH2r7rrrs45JBDmD17NgAPPfQQs2fP5ogjjmDVqlVN3962eu2115g3bx6zZ8/mC1/4AgCzZ89m9uzZXHvttYNuf+HChW+0B/C1r32N2bNnM3fuXF555ZVBt99KH/nIR5g9ezYnnXQS8Ob78qlPfarNmZXfz372s00+Nz//+c+ZPXs2Rx11FGvWrGlzds137bXXbrK/n//855k9ezbz5s3jtddea3N2Ery23ltSSFIZ9LQ7geFq/NgeXnxtfdPb/fWvf819993H66+//kZsyZIljBo1ihdffJGpU6c2fZvbore3lx//+MdsrLoH1ZIlS+jp6WH58uWDbv/hhx/mnnvuYf36N9/jJUuW0NXVtck2h6ObbrqJRx999I3nS5YsAWCXXXZpV0od47HHHmPZsmVbfH+6u7t55ZVXmDx5chuza75f/epXLF26lA0b3uy10Pc9rL6BuNQuL71ujxpJKgPPFNYxcdxoXnx9Q9NHVjv66KPp7d2yzR133JHf+q3fauq2BmPcuHEceOCBW8THjh3LvHnzBt3+8ccfz+jRo7eI77vvvuy4446Dbr+VTj31VLq6Nv3qjBs3jjPPPLNNGXWO9773vTWLoV122YXp06cPfUItNm/ePMaOHbtF/KCDDmL77bdvQ0bSpiwKJakcLArrmDK+8ofYmpfWNrXdCRMmMGPGjC3ixx9/PBHR1G0N1llnnbVF4dbV1cX+++8/6Lb32muvLdoeNWrUiCisTj75ZHbYYYdNYhs3bmTu3LltyqhzTJkyhWnTpm0SiwhOPvnkNmXUWgcccMAW/y6MGTNmRHxPVF5J5YeZ0T1dvLy2+T1qJElDz6KwjmkTtwPgN8++2vS2zzjjDEaNGvXG8/Hjx3P66ac3fTuDNW/evC0Kt2OPPXaLs2TbIiI47rjjNomNHTuWE044YdBtt9qRRx65SfdFgJ133pndd9+9TRl1ltNOO22Tz+D48eM55ZRT2phR63R1dXH00UdvEhs1alRTztZLg7Xj2B7PFEpSSVgU1vGuqeMBuHfl801v+8QTT9ykS9jatWs59thjm76dwdp///03OUuxww47cMYZZzSt/dNPP53x48e/8Xzjxo0cfPDBTWu/VcaOHbtJnmU+UzUcnXTSSZucqX3ttdeYM2dO+xJqsTPPPHOT/e3q6mK//fZrY0ZSxcTtR/PMy+vanYYkqQksCuuYMn4se04ex08eav6IhrNnz95k4Ig999yTSZMmNX07g9XV1cUxxxzzxvP169fz3ve+t2ntv/e972Xt2je7577nPe+hu7u7ae230llnncWYMWOAcp+pGo6OOOKITT43++yzzxbdectk7ty5mwzI1Kyz9dK26rusd9rE7XjieUfBlaQy8C+Lfpyy/6787OFnWPbEC01tt6enh9/5nd8BoLu7u6ln35qt+izF1KlTmzo66s4778zb3/52YOQN1DJv3jx6eiqD977++uu85z3vaXNGnWPMmDFv3KJh9OjRI+pzsy123XVX3vrWtwKVs/Vl31+NHNMmbs8Tz79Gb68j4UrSSGdR2I/5757OxO1H8af/fBePN/nawjPPPJPtt9+ecePGceKJJza17WbqO0vR1dXFqaee2vT2Tz/9dLq7u9m4ceMW1xgOZ3vvvfcb14Xut99+jBs3rs0ZdZazzjqLsWPHMmbMmBFxHepgnXLKKURE08/WS4MxbeJ2rNvQy+omD8gmSRp6FoX9mDRuNH//Xw7iuVfWcfyXbuGzP/olv36mOTdWP+6449iwYQPr1q3j0EMPbUqbrTB16lTe+ta30tXV1ZLr5k466SS6urrYaaedeNvb3tb09lulb6CciOCss85qdzod5/jjj6e3t5fe3t6at04pm1NOOYXu7u5NzhpK7bbvbm8B4M5fP9fmTCRJgzViisKImBcRD0XEiohYMFTbPeKdO/ODPzuSd79jZy77ycO85/M/Yc7nb+YT1yzla7c8wg33/ye/euolXnp9YMNy77HHHuy0004cfvjhm4xEOhz1nSE88sgjm9724YcfTkRw0kknNb3tVjv99NPJTEeCbIN3vetd7LDDDsyZM2fEXIc6GH3dzVtxtl4j31AfH/s6i+437S1M3H4UP1y2qtWblCS1WE+7E2hERHQDlwJzgZXAHRGxMDMfGIrtv32ncXx9/iweffoVFt23iltXPM2PH3iK7971xCbLjR3VxQ5jepj6lu0YN6absaO6mbzDGHbcbhSjursY3R2MKWJjRnVxzn/7HFMmT+bHDzxFd3fQ0xVM3H4024/uprsr6IogAroiigm6ut6cjwhGd3ex3ejW/lF83nnnsdtuu7Hddts1ve3Ro0dz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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fe7622999b0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# megaface\n",
    "fn = '/mnt/lustre/douhaoxuan/Megaface/megafaceclean_label.txt'\n",
    "with open(fn, 'r') as f:\n",
    "    lines = f.readlines()\n",
    "labels = np.array([int(l.strip()) for l in lines[1:]])\n",
    "hist = np.bincount(labels)\n",
    "hhist = np.bincount(hist)\n",
    "plt.figure(figsize=(15,5))\n",
    "plt.subplot(121)\n",
    "plt.plot(np.arange(len(hist)), np.sort(hist)[::-1])\n",
    "plt.xlabel('identity')\n",
    "plt.ylabel('num image')\n",
    "for j in [1, 2, 3, 4, 5, 10]:\n",
    "    pos = labels.max() - (hist <= j).sum()\n",
    "    plt.arrow(pos, 400, 0, -280, head_width=10000, head_length=100, fc='k', ec='k')\n",
    "    plt.annotate(str(j), (pos-6000, 500))\n",
    "plt.subplot(122)\n",
    "plt.plot(np.arange(len(hhist)), hhist)\n",
    "plt.xlabel('num image')\n",
    "plt.ylabel('num identities')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "502565"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "labels.max() - (hist <= 1).sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.15277567052714983"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(hist<=1).sum() / labels.max()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "593190"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "labels.max()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [conda env:r0.1.2]",
   "language": "python",
   "name": "conda-env-r0.1.2-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
